
using AiQiuQuan.Sport.Model.Enums;

namespace AiQiuQuan.Sport.Model.Models
{
    /// <summary>
    /// 约球dto
    /// </summary>
    public class BallDto : BaseDto
    {
        /// <summary>
        /// 名称
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 1一次、2定期
        /// </summary>
        public BallTypeEnum Type { get; set; }

        /// <summary>
        /// 场馆ID
        /// </summary>
        public Guid VenueId { get; set; }

        /// <summary>
        /// 场馆名称
        /// </summary>
        public string VenueName { get; set; }

        /// <summary>
        /// 场地名称
        /// </summary>
        public string SiteName { get; set; }

        /// <summary>
        /// 省
        /// </summary>
        public Guid? ProvinceId { get; set; }

        /// <summary>
        /// 省
        /// </summary>
        public string? ProvinceName { get; set; }

        /// <summary>
        /// 市
        /// </summary>
        public Guid? CityId { get; set; }

        /// <summary>
        /// 市
        /// </summary>
        public string? CityName { get; set; }

        /// <summary>
        /// 纬度
        /// </summary>
        public decimal Lat { get; set; }

        /// <summary>
        /// 经度
        /// </summary>
        public decimal Lng { get; set; }

        /// <summary>
        /// 开始日期
        /// </summary>
        public DateTimeOffset StartDate { get; set; }

        /// <summary>
        /// 结束日期
        /// </summary>
        public DateTimeOffset? EndDate { get; set; }

        /// <summary>
        /// 开始时间:08:00
        /// </summary>
        public string StartTime { get; set; }

        /// <summary>
        /// 结束时间:23:00
        /// </summary>
        public string EndTime { get; set; }

        /// <summary>
        /// 0 Sunday、1 Monday、2 Tuesday、3 Wednesday、4 Thursday、5 Friday、6 Saturday
        /// </summary>
        public DayOfWeek WeekDay { get; set; }

        ///// <summary>
        ///// 报名最大队伍数
        ///// </summary>
        //public int LimitCount { get; set; }

        /// <summary>
        /// 1单打、2双打
        /// </summary>
        public GameVersusEnum VersusType { get; set; }

        /// <summary>
        /// 金额
        /// </summary>
        public decimal Amount { get; set; }

        /// <summary>
        /// 比赛状态：1报名中、3进行中、4已结束、9已取消
        /// </summary>
        public GameStateEnum State { get; set; }

        /// <summary>
        /// 0男、1女、2混合、3不限
        /// </summary>
        public GameSexEnum Sex { get; set; }

        /// <summary>
        /// 起始网球水平
        /// </summary>
        public decimal StartLevel { get; set; }

        /// <summary>
        /// 结束网球水平
        /// </summary>
        public decimal EndLevel { get; set; }

        /// <summary>
        /// 备注说明
        /// </summary>
        public string? Remark { get; set; }

        /// <summary>
        /// 报名人数
        /// </summary>
        public int JoinCount { get; set; }

        /// <summary>
        /// 距离
        /// </summary>
        public double Distance { get; set; }

        /// <summary>
        /// 报名列表
        /// </summary>
        public List<BallUserDto> BallUserList { get; set; }

        /// <summary>
        /// 比赛图片
        /// </summary>
        public string ImgUrl { get; set; }

        /// <summary>
        /// 组织者
        /// </summary>
        public string? Host { get; set; }

        /// <summary>
        /// 组织者电话
        /// </summary>
        public string? Phone { get; set; }

        /// <summary>
        /// 组织者图片
        /// </summary>
        public string? Logo { get; set; }

        /// <summary>
        /// 创建者ID
        /// </summary>
        public Guid UserId { get; set; }

        /// <summary>
        /// 是否平台创建
        /// </summary>
        public bool IsPlatform { get; set; }

        /// <summary>
        /// 报名时日期
        /// </summary>
        public DateTimeOffset QueryDate { get; set; } = DateTimeOffset.Now.Date;

        /// <summary>
        /// 是否创建者
        /// </summary>
        public bool IsCreator { get; set; }
    }
}
